package ca.etsmtl.log660.mock;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import ca.etsmtl.log660.entity.Artiste;
import ca.etsmtl.log660.entity.Film;
import ca.etsmtl.log660.entity.Genre;
import ca.etsmtl.log660.entity.Pays;
import ca.etsmtl.log660.entity.Scenariste;

public class MockFilm {

	private static MockFilm instance;
	
	private Artiste realisateurFilm1 = new Artiste();
	private Artiste realisateurFilm2 = new Artiste();
	private Genre genre1 = new Genre();
	private Genre genre2 = new Genre();
	private Genre genre3 = new Genre();
	private Pays pays1 = new Pays();
	private Pays pays2 = new Pays();
	private Pays pays3 = new Pays();
	private Scenariste scenariste1 = new Scenariste();
	private Scenariste scenariste2 = new Scenariste();
	private Film film1 = new Film();
	private Film film2 = new Film();
		
	private static MockFilm getInstance() {
		if (instance == null) {
			instance = new MockFilm();
		}
		return instance;
	}
	
	private MockFilm() {
		Set<Genre> genresFilm1 = new HashSet<Genre>();
		Set<Genre> genresFilm2 = new HashSet<Genre>();
		Set<Pays> paysFilm1 = new HashSet<Pays>();
		Set<Pays> paysFilm2 = new HashSet<Pays>();
		Set<Scenariste> scenaristesFilm1 = new HashSet<Scenariste>();
		Set<Scenariste> scenaristesFilm2 = new HashSet<Scenariste>();
		
		genre1.setNom("Comedie");
		genre2.setNom("Action");
		genre3.setNom("Drame");
		pays1.setNom("pays1");
		pays2.setNom("pays2");
		pays3.setNom("pays3");
		scenariste1.setNom("scenariste 1");
		scenariste2.setNom("scenariste 2");
		realisateurFilm1.setNom("real film1");
		realisateurFilm2.setNom("real film2");
		
		genresFilm1.add(genre1);
		genresFilm1.add(genre2);
		genresFilm2.add(genre1);
		genresFilm2.add(genre3);
		paysFilm1.add(pays1);
		paysFilm2.add(pays2);
		paysFilm2.add(pays3);
		scenaristesFilm1.add(scenariste1);
		scenaristesFilm2.add(scenariste1);
		scenaristesFilm2.add(scenariste2);
		
		film1.setTitre("titre film1");
		film1.setAnneeDeSortie(new Date());
		film1.setLangue("langue film 1");
		film1.setDuree(120);
		film1.setSynopsis("synopsis film1 vachement long \n et sur plusieurs lignes pour voir un peu");
		film1.setRealisateur(realisateurFilm1);
		film1.setGenre(genresFilm1);
		film1.setPaysDeProduction(paysFilm1);
		film1.setScenaristes(scenaristesFilm1);
		
		film2.setTitre("titre film2");
		film2.setAnneeDeSortie(new Date());
		film2.setLangue("langue film 2");
		film2.setDuree(150);
		film2.setSynopsis("synopsis film2");
		film2.setRealisateur(realisateurFilm2);
		film2.setGenre(genresFilm2);
		film2.setPaysDeProduction(paysFilm2);
		film2.setScenaristes(scenaristesFilm2);
	}
	
	public static ArrayList<Film> getMockedFilms() {
		MockFilm mf = MockFilm.getInstance();
		ArrayList<Film> films = new ArrayList<Film>();
		films.add(mf.getFilm1());
		films.add(mf.getFilm2());
		return films;
	}
	
	private Film getFilm1() {
		return this.film1;
	}
	private Film getFilm2() {
		return this.film2;
	}
}

		
		
		
		